package com.demo2.todo.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import com.demo2.todo.model.entity.ShareTodo;
import java.util.List;
import java.util.Optional;

/**
 * 待办事项分享的数据访问层接口
 * @author evi
 */
public interface ShareTodoRepository extends JpaRepository<ShareTodo, Long> {

    /**
     * 根据分享码查询分享记录
     */
    Optional<ShareTodo> findByShareCode(String shareCode);

    /**
     * 检查待办事项是否已公开分享
     */
    boolean existsByTodoIdAndIsPublicTrue(Long todoId);

    /**
     * 查询待审核的分享记录
     */
    List<ShareTodo> findByReviewStatusOrderByCreatedAtAsc(ShareTodo.ReviewStatus reviewStatus);

    /**
     * 根据用户ID查询其分享的记录（关联查询todo的userId）
     */
    List<ShareTodo> findByTodoId(Long todoId);

    /**
     * 删除指定待办事项的分享记录
     */
    void deleteByTodoId(Long todoId);

    boolean existsByShareCode(String code);
}
